package com.beerandjesus.sportofkings.handicapper.model;

import java.util.List;

public interface RaceAnalysisResultVO {
	
	/**
	 * Get the race type
	 * @return The race type
	 */
	public RaceType getRaceType();
	
	/**
	 * Get the track code
	 * @return The track code
	 */
	public String getTrackCode();
	
	/**
	 * Get the name of this race
	 * @return The race name
	 */
	public String getRaceName();
	
	/**
	 * Get the purse amount
	 * @return The purse amount
	 */
	public String getPurse();
	
	/**
	 * Get the claiming price, if any
	 * @return The claiming price
	 */
	public String getClaimingPrice();
	
	/**
	 * Get the race distance
	 * @return The race distance
	 */
	public String getDistance();
	
	/**
	 * Get the track surface
	 * @return The track surface
	 */
	public TrackSurface getSurface();
	
	/**
	 * Get the historical par speed for this kind of race 
	 * @return The speed par
	 */
	public String getSpeedPar();

	/**
	 * Get the number of horses in the field
	 * @return The field count
	 */
	public abstract int getFieldCount();
	
	/**
	 * Get the race date
	 * @return The race date
	 */
	public abstract String getRaceDate();

	/**
	 * Get the race number
	 * @return The race number on the card
	 */
	public abstract String getRaceNumber();

	/**
	 * Get the race post times
	 * @return The post times, usually pst/mst/cst/est
	 */
	public abstract String getPostTimes();

    /**
     * Get the analysis results
     * @return The list of analysis results
     */
    public abstract List<HorseAnalysisResult> getResults();
}
